import datetime

import matplotlib.pyplot as plt
import pandas as pd
import pymysql

import matplotlib.dates as mdate

# 建立数据库连接
from pandas.plotting._matplotlib import timeseries

conn = pymysql.connect("localhost", "stockx", "stockx#2020", "stockx", charset="utf8")
print("连接成功")
# 读取数据库表数据
data = pd.read_sql("select dt , cmc_ratio as ratio from cn_gdp", con=conn)
# 数据转化为列表
x = list(data.dt)  # 日期
y = list(data.ratio)

ax = plt.gca()  # 表明设置图片的各个轴，plt.gcf()表示图片本身
ax.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m'))  # 横坐标标签显示的日期格式
plt.xticks(pd.date_range(x[0], datetime.datetime.now().date(), freq='120d'))
plt.xticks(rotation=90)

# 下面2个只针对windows系统
plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像时符号-显示为方块的2问题

plt.grid(axis="y")

# 设置折线样式
plt.plot(x, y)

# 设置X轴文字的标题
plt.xlabel("")  #日期没必要显示
# 设置Y轴文字的标题
plt.ylabel("RATIO")

# 设置图表的标题
plt.title("CMC证券化率")

plt.show()
print(type(x))
# 关闭数据库连接
conn.close()
